package com.cxs.xiaomi.dao;

import com.cxs.xiaomi.domain.User;

import java.util.Collection;
import java.util.List;

/*
 * @Author:cxs
 * @Date:2021/9/14  17:56
 * @Version 1.0
 * @Motto:放下杂念,只为迎接明天更好的自己
 * */
public interface UserDao {
    /**
     * 根据用户名查询用户
     * @param username
     * @return
     */
    List<User> selectByUsername(String username);

    /**
     * 新增用户
     * @param user
     * @return
     */
    int insert(User user);

    /**
     * 根据用户名密码查询
     * @param username
     * @param password
     * @return
     */
    User selectByUsernameAndPassword(String username, String password);

    /**
     * 根据id查询
     * @param userId
     * @return
     */
    User selectById(int userId);

    /**
     * 根据邮箱激活码查询,确保激活码唯一
     * @param email
     * @param code
     * @return
     */
    User selectByEmailAndCode(String email, String code);

    /**
     * 根据id激活账户
     * @param id
     * @param i
     * @return
     */
    int updateCodeById(Integer id, Integer i);

    /**
     * 查询所有用户
     * @return
     */
    List<User> selectAll();

    /**
     * 根据id删除
     * @param id
     * @return
     */
    int deleteById(int id);

    /**
     * 模糊查询
     * @param condition
     * @param params
     * @return
     */
    List<User> selectByUsernameAndGender(String condition, List params);
}
